Scorerは
weave.Evaluation
オブジェクトに評価中に渡されます。weaveには2種類のScorerがあります:- 関数ベースのScorer:でデコレートされたシンプルなPython関数
@weave.op
。 - クラスベースのScorer:より複雑な評価のために
weave.Scorer
を継承するPythonクラス。
独自のScorerを作成する
すぐに使えるScorer
このガイドではカスタムScorerの作成方法を示していますが、Weaveには様々なpredefined scorersやlocal SLM scorersがすぐに使えるように用意されています。以下のようなものがあります:
関数ベースのScorer
これらは評価が実行されると、
@weave.op
でデコレートされ、辞書を返す関数です。以下のような単純な評価に最適です:evaluate_uppercase
はテキストがすべて大文字かどうかをチェックします。クラスベースのScorer
より高度な評価、特に追加のスコアラーメタデータを追跡する必要がある場合や、LLM評価者に異なるプロンプトを試したり、複数の関数呼び出しを行ったりする場合は、このクラスは、要約を元のテキストと比較することで、要約の質を評価します。
Scorer
クラスを使用できます。Requirements:- 以下から継承します:
weave.Scorer
。 score
メソッドを@weave.op
でデコレートして定義します。score
メソッドは辞書を返す必要があります。
Scorerの仕組み
Scorerのキーワード引数
ScorerはAIシステムからの出力とデータセット行からの入力データの両方にアクセスできます。weaveを使用した列名のマッピング
時々、これで、
- Input:Scorerがデータセット行から「label」や「target」列などのデータを使用するようにしたい場合は、Scorerの定義に
label
またはtarget
キーワード引数を追加することで簡単に利用できるようになります。
score
クラスメソッド)のパラメータリストは次のようになります:Evaluation
が実行されると、AIシステムの出力がoutput
パラメータに渡されます。Evaluation
は自動的に追加のScorer引数名をデータセット列に一致させようとします。Scorer引数やデータセット列のカスタマイズが難しい場合は、列マッピングを使用できます - 詳細は以下をご覧ください。- Output:AIシステムの出力にアクセスするには、Scorer関数のシグネチャに
output
パラメータを含めてください。
を使用した列名のマッピングcolumn_map
時々、score
メソッドの引数名がデータセットの列名と一致しないことがあります。これはcolumn_map
を使用して修正できます。クラスベースのScorerを使用している場合は、Scorerクラスを初期化するときにcolumn_map
属性に辞書を渡します。この辞書はScorer
メソッドの引数名をデータセットの列名にマッピングします。順序は:score
です。{scorer_keyword_argument: dataset_column_name}
。Example:text
メソッドのscore
引数はnews_article
データセット列からデータを受け取ります。Notes:- 列をマッピングするもう一つの同等のオプションは、
Scorer
をサブクラス化し、score
メソッドをオーバーロードして列を明示的にマッピングすることです。
Scorerの最終要約
評価中、Scorerはデータセットの各行に対して計算されます。評価の最終スコアを提供するために、出力の戻り値の型に応じて
auto_summarize
を提供します。- 数値列の平均が計算されます
- ブール列のカウントと割合
- その他の列タイプは無視されます
summarize
メソッドをScorer
クラスでオーバーライドして、最終スコアを計算する独自の方法を提供できます。summarize
関数は以下を期待します:- 単一のパラメータ
score_rows
:これは辞書のリストで、各辞書にはデータセットの単一行に対してscore
メソッドから返されたスコアが含まれています。 - 要約されたスコアを含む辞書を返す必要があります。
この例では、デフォルトのauto_summarize
はTrueのカウントと割合を返していたでしょう。
詳細を知りたい場合は、CorrectnessLLMJudgeの実装をチェックしてください。コールにスコアラーを適用する
Weave opsにスコアラーを適用するには、.call()
メソッドを使用する必要があります。これにより、操作の結果とそのトラッキング情報の両方にアクセスできます。これにより、スコアラーの結果をWeaveのデータベース内の特定のコールに関連付けることができます。
メソッドの使用方法の詳細については、.call()
ガイドのCalling Opsを参照してください。
基本的な例を以下に示します:同じコールに複数のスコアラーを適用することもできます:Notes:
- スコアラーの結果は自動的にWeaveのデータベースに保存されます
- スコアラーはメイン操作の完了後に非同期で実行されます
- UIでスコアラーの結果を表示したり、APIを通じてクエリを実行したりできます
使用preprocess_model_input
評価中にモデルに到達する前にデータセットの例を変更するには、preprocess_model_input
パラメータを使用できます。
使用情報と例については、評価前にデータセット行をフォーマットするためのpreprocess_model_input
の使用を参照してください。
スコア分析
このセクションでは、単一のコール、複数のコール、および特定のスコアラーによってスコアリングされたすべてのコールのスコアを分析する方法を示します。単一のコールのスコアを分析する
単一コールAPI
単一のコールのスコアを取得するには、get_call
メソッドを使用できます。
単一コールUI

複数のコールのスコアを分析する
複数コールAPI
複数のコールのスコアを取得するには、get_calls
メソッドを使用できます。
複数コールUI

特定のスコアラーによってスコアリングされたすべてのコールを分析する
スコアラー別のすべてのコールAPI
特定のスコアラーによってスコアリングされたすべてのコールを取得するには、get_calls
メソッドを使用できます。
スコアラー別のすべてのコールUI
最後に、スコアラーによってスコアリングされたすべてのコールを表示したい場合は、UIのScorersタブに移動し、「Programmatic Scorer」タブを選択します。スコアラーをクリックしてスコアラー詳細ページを開きます。
View Traces
ボタンをScores
の下でクリックして、スコアラーによってスコアリングされたすべてのコールを表示します。

